@
2年前 提问
1个回答

iOS沙盒有什么特点

Simon
2年前

iOS提供沙盒机制,保证我们所有运行的应用都是在一个沙盒模块里面。沙盒会有这么几个特点:

  • 每个应用程序都有自己的存储空间;

  • 应用程序不能直接去访问别的程序的存储内容。比如说它不能读取其他app文件或者内容;

  • 应用程序所请求的数据都要通过权限的检测。这里所说的请求数据,就是类似于短信,照片等等这些数据,如果我们应用程序要去访问这些数据,那么他会通过一个权限检测,让用户决定是否允许你去访问这个数据。

获取沙盒的路径:

  • 获取沙盒根目录:

    NSString *homeDirectory = NSHomeDirectory();

    NSLog(@”homeDirectory:%@”, homeDirectory);

  • 获取document目录

    NSArray *documentPaths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentPath = [documentPaths objectAtIndex:0];

    NSLog(@”documentPath:%@”, documentPath);

  • 获取Library目录

    NSArray *libraryPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

    NSString *libraryPath = [libraryPaths objectAtIndex:0];

    NSLog(@”libraryPath:%@”, libraryPath);

  • 获取Cache目录

    NSArray *cachePaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

    NSString *cachePath = [cachePaths objectAtIndex:0];

    NSLog(@”cachePath:%@”, cachePath);

  • 获取Tmp目录

    NSString *tmpPath = NSTemporaryDirectory();

    NSLog(@”tmpPath:%@”, tmpPath);

  • bundle路径

    NSString *bundlePath = [[NSBundle mainBundle] resourcePath];

    NSLog(@”%@”,bundlePath);

    NSString *imagePath = [[NSBundle mainBundle] pathForResource:@”test” ofType:@”png”];

    NSLog(@”%@”,imagePath);